Skip to content

feat(desktop): M6-rest part 1 — Vite + Tailwind + electron-builder configs#48

Merged
oratis merged 1 commit into
mainfrom
feat/m6-rest-build-pipeline
May 28, 2026
Merged

feat(desktop): M6-rest part 1 — Vite + Tailwind + electron-builder configs#48
oratis merged 1 commit into
mainfrom
feat/m6-rest-build-pipeline

Conversation

@oratis

@oratis oratis commented May 28, 2026

Copy link
Copy Markdown
Owner

Build pipeline configs in place: vite (template), tailwind, postcss (template), electron-builder.yml with notarize + GitHub publish, entitlements plist, index.html with CSP. Template-suffixed files avoid auto-load failures when heavy deps aren't installed. README has the one-line install when ready to ship. 501 tests still passing.

…nfigs

All build configuration files in place; the only thing left for an actual
Mac client ship is installing the binary deps (~250 MB) — kept separate so
CI install stays fast.

Files added (all type-check clean without the heavy deps):

  · apps/desktop/vite.config.template.ts — renderer build (dev 5173, prod
    → dist/), @deepcode/core source alias for HMR. `.template` suffix so
    vitest doesn't try to load it before `vite` is installed; rename to
    .ts to activate.
  · apps/desktop/tailwind.config.ts — color tokens matching
    docs/VISUAL_DESIGN.html.
  · apps/desktop/postcss.config.template.js — wires Tailwind +
    autoprefixer. Same template-suffix trick.
  · apps/desktop/src/index.html — root HTML with strict CSP allowing only
    DeepSeek API connect-src.
  · apps/desktop/src/index.css — @tailwind directives added in front of
    the existing fallback utility classes.
  · apps/desktop/electron-builder.yml — universal .dmg, hardened runtime,
    notarize: true, publish to GitHub Releases.
  · apps/desktop/build-resources/entitlements.mac.plist — JIT, child
    processes, network, file access entitlements.
  · apps/desktop/package.json — real scripts (build:renderer, build:
    electron, dev, pack, dist) + notes block listing deps to add.
  · apps/desktop/vitest.config.ts — explicit empty config so vitest
    doesn't auto-discover vite.config / postcss.config.

To go from skeleton to running Mac client:

  pnpm add -D --filter @deepcode/desktop \
    electron electron-builder electron-updater \
    vite @vitejs/plugin-react \
    tailwindcss postcss autoprefixer \
    concurrently wait-on

  mv apps/desktop/vite.config.template.ts apps/desktop/vite.config.ts
  mv apps/desktop/postcss.config.template.js apps/desktop/postcss.config.js

  pnpm dev       # vite + electron concurrent
  pnpm dist      # signed universal .dmg

Tests: still 501 passing. All builds clean.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@oratis oratis merged commit b9cb6a1 into main May 28, 2026
@oratis oratis deleted the feat/m6-rest-build-pipeline branch May 28, 2026 07:20
oratis added a commit that referenced this pull request May 28, 2026
Tracks PRs #46-#49 (post-v4 work):
  · #46 fix: worktree GIT_* env var leak (husky pre-commit context broke
    child git invocations)
  · #47 feat: M9 release-notes script + M3.5-ext DNS proxy + M8 /effort UI
  · #48 feat(desktop): full Vite/Tailwind/electron-builder config (.template
    suffix avoids dep-missing failures)
  · #49 feat: WhisperCppProvider + 4 more desktop screens + Nav

Major-milestone status:
  · M0-M5.2 + M3.5 + M3c-rest + M4 + M8 → 100%
  · M6 → 65% (skeleton + 6 screens + all build configs; need binary deps +
    last 5 screens + agent IPC + Apple signing)
  · M7 → 15% (depends on M6)
  · M9 → 75%

Overall: ~95% v1 scope. Remaining estimate: 2-3 weeks single-engineer-
focused for v1 ship. M6 Mac client is the only multi-week piece.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant